home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 5
/
Gold Medal Software - Volume 5 (Gold Medal) (1995).iso
/
menuts
/
dosmenu.arj
/
DOSMENU.DOC
< prev
next >
Wrap
Text File
|
1994-12-07
|
111KB
|
3,028 lines
DOSmenu
═══════
A Powerful, Easy Management System
For Novell Netware, Other Networks, And Stand-Alone PCs
▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █ (C)Copyright 1994
█ █ █ █
█ ▀▀▀▀▀ ▀ Bremer Corporation
█ ▄▄▄▄▄ ▄ Austin, Texas
█ █ █ █
█ ▀▀▀▀▀ █ All Rights Reserved
▀▀▀▀▀▀▀▀▀▀▀
Version 6.9j
December 1994
TABLE OF CONTENTS
══════════════════════════════════════════════════════════════════════════════
Topic Page
Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . 5
Requirements
Recommendations
Maximum Limits
Startup Options
Required Files
Optional Files
Update Procedure For Registered Users
Installation Instructions . . . . . . . . . . . . . . . . . 8
Notes
Startup Batch File . . . . . . . . . . . . . . . . . . . . . 9
Menu Commands . . . . . . . . . . . . . . . . . . . . . . . 10
System Setup . . . . . . . . . . . . . . . . . . . . . . . . 11
Menu Definition . . . . . . . . . . . . . . . . . . . . . . 18
Server-Based Convention
Rights-Based Convention
Notes
Testing Your Menu
Menu Rules . . . . . . . . . . . . . . . . . . . . . . . . . 25
Rules
Notes
Loading Additional Menus (/LOAD, /MENU)
Chaining Startup Batch Files (/NEW)
Logging In To Other Servers (/LOGIN)
Sub-Menus . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Compiling Menu Files . . . . . . . . . . . . . . . . . . . . 30
Translating Menu Files . . . . . . . . . . . . . . . . . . . 31
Temporary Batch Files . . . . . . . . . . . . . . . . . . . . 32
DOS Environment Variables . . . . . . . . . . . . . . . . . . 33
Noticing . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Personal Menus . . . . . . . . . . . . . . . . . . . . . . . 35
Picking Files From Lists . . . . . . . . . . . . . . . . . . 36
Filling In The Command Line . . . . . . . . . . . . . . . . . 39
Unattended Runs . . . . . . . . . . . . . . . . . . . . . . . 40
DMutil Maintenance Utility . . . . . . . . . . . . . . . . . 41
Command Parameters
The Menu File Editor
Hardware Managing Service . . . . . . . . . . . . . . . . . . 43
Software Metering Service . . . . . . . . . . . . . . . . . . 45
DMmeter Metering Utility . . . . . . . . . . . . . . . . . . 46
WOmeter Metering Utility . . . . . . . . . . . . . . . . . . 47
DMquery Batch Input Utility . . . . . . . . . . . . . . . . . 48
DMlogin Login Utility . . . . . . . . . . . . . . . . . . . . 49
Windows Office Menu . . . . . . . . . . . . . . . . . . . . . 50
Bonus Utilities (For Registered Users) . . . . . . . . . . . 51
Using DOSmenu with Novell NetWare 4.x . . . . . . . . . . . . 55
Commonly Asked Questions . . . . . . . . . . . . . . . . . . 57
Example Menu File . . . . . . . . . . . . . . . . . . . . . . 60
Shareware . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Distribution
Registration
Disclaimer
Trademarks
Additional DOSmenu Documentation Files . . . . . . . . . . . 64
INTRODUCTION
══════════════════════════════════════════════════════════════════════════════
DOSmenu was designed as a simple yet powerful menu system for both network and
stand-alone environments.
Here is a quick overview of DOSmenu:
o Small executable size.
o No memory overhead.
o Unlimited menus.
o Run any program, including TSRs.
o Help About screens/files for any menu item.
o Many rights options to determine whether a menu item is usable by a user.
o Automatically knows NetWare. Works with other networks and stand-alone
environments.
o Change menu environment on-the-fly while users are active.
o Optionally compile menu files for ultimate menu security.
o One utility (DMutil) handles all menu maintenance tasks.
o Translate NetWare menu files.
o Complete user logging and reporting capabilities.
o Complete Software Metering Service and reporting capabilities.
o Complete Hardware Managing Service and reporting capabilities.
o Allow users to fill in commands and pick items/files from lists for any
menu item command.
o Full mouse support, a large menu utility set and printed documentation
with the registered version.
MISCELLANEOUS
══════════════════════════════════════════════════════════════════════════════
REQUIREMENTS
════════════
DOSmenu's only known requirement is that it must run under DOS 3.1 or higher.
It loads Windows fine and runs fine from a Windows DOS session.
RECOMMENDATIONS
═══════════════
We strongly recommend placing the command
SHELL=C:\COMMAND.COM /E:512 /P {or more}
in all CONFIG.SYS files using this menu system. The environment space is
needed as DOSmenu passes many things through the DOS environment (thereby
utilizing NO overhead).
MAXIMUM LIMITS
══════════════
Number of..
menu files: unlimited
sub-menus per file: 35 (depends on memory)
shown items per sub-menu: 36
DOS commands per menu item: 35
rights per menu item: 10
right items per right group: 10
active notices per user: 15
lines per notice: 10
pick items: 250
metered applications: 100
managed workstations per server: 1000
Length of..
menu item lines: 60
menu rights lines: 120
menu command lines: 120
help lines: 60
about lines: 50
screen title: 78
questions: 72
notice lines: 70
pick items: 67
STARTUP OPTIONS
═══════════════
DOSmenu is actually started with the DOSMENU command from within the menu
startup batch file, MENU.BAT.
REQUIRED FILES
══════════════
The following files are necessary to run DOSmenu:
DOSMENU.EXE The DOSmenu program.
DMMISC.EXE Required for registered versions (it is the register-key file).
It must reside in DOSMENU.EXE's home directory (and
DMLOGIN.EXE's home directory, if different).
DMUTIL.EXE The DOSmenu utility program. It handles all menu system
maintenance chores.
DOSMENU.INI The default DOSmenu INI file initially made and edited with
DMutil. It configures your menu system environment.
DOSMENU.MNU The default DOSmenu menu file initially made and edited with
DMutil. This file is the default menu.
MENU.BAT The startup batch file initially made and edited with DMutil.
OPTIONAL FILES
══════════════
Although not required, these files can extends DOSmenu's usefulness:
DOSMENU.PER Optional personal menu kept in users' private directory.
DOSMENU.NTE The default DOSmenu note file initially made and edited with
DMutil. This file holds user notices.
DOSMENU.LOG If logging is enabled, this file is appended every time a user
performs a menu action.
DOSMENU.MTR If metering is enabled, this is the central file where the
metering information is kept.
DMSAVER.EXE An external screen saver (you may use your own as well).
This one can use the user's NetWare password to help protect
workstations.
DMMANAGE.EXE An external hardware managing utility that can keep a
management database of all workstations on your network.
DMMETER.EXE An external software metering utility that can compliment the
metering services offered from within the DOSmenu.
DMQUERY.EXE An external utility that gets and uses batch file input.
DMPAUSE.EXE Like DOS 'pause' command but with ^C and ^Break key trapping.
DMVIEW.EXE A full-fledged file viewing utility for you and your users.
It is a great utility for filling those menu items that require
your users simply to "look" at something, like a company
listing or a business printout on line. It offers a simple
interface yet a powerful engine.
DMLOGIN.EXE A great login/logout utility that enhances network order and
security. (See DMLOGIN LOGIN UTILITY section for
specifics).
INSTALL.EXE The initial DOSmenu installation program.
WOMETER.EXE A Windows-based software metering utility that can be used to
view, reset, and periodically erase the meter file. This
program performs the same functions as DMmeter.
THREED.VBX Required for WOMETER.EXE. Place in \WINDOWS directory.
VBRUN300.DLL Required for WOMETER.EXE. Place in \WINDOWS directory. (If
necessary, download it from most online services. It is
shipped with the registered version.)
NOBRK.EXE A very useful utility that can help to guarantee security
within your menu system with an approach different than the
inherent DOSmenu {r=nobreak} rights option.
Many additional utility programs (see BONUS UTILITIES section) are also
shipped with the registered version.
UPDATE PROCEDURES FOR REGISTERED USERS
══════════════════════════════════════
There are two ways to upgrade your registered version of DOSmenu starting with
version 6.4.
Download from CIS (or other online services)
────────────────────────────────────────────
You may download the latest shareware self-extracting ZIP file (DOSMNU.EXE)
anytime, run it, and then copy its files over your existing registered files
during installation. It will then become registered automatically. (Make
sure you do not delete the existing DMMISC.EXE file, which is your
register-key file.)
By mail directly from us
────────────────────────
You may write to us and request the latest registered update. Please include
$15 US for shipping and handling.
INSTALLATION INSTRUCTIONS
══════════════════════════════════════════════════════════════════════════════
To quickly get the menu system up and running, do the following (check the
documentation later for specifics):
* If you received a shareware version containing one self-executable file
called DOSMNU.EXE, then copy that file to a temporary directory on your
hard disk and then run 'DOSMNU' to unzip the DOSmenu distribution files.
1 Run 'INSTALL' from the distribution disk to copy DOSmenu files to their
permanent directories and perform initial setup of DOSmenu support files.
2 After installation, you can further define your menu system with DMutil.
'DMUTIL' edits all DOSmenu support files.
'DMUTIL /C DOSMENU.INI' compiles the init file for security.
'DMUTIL /C DOSMENU.MNU' compiles the menu file for security.
'DMUTIL /?' shows additional options.
3 Run 'MENU' to start the menu system.
4 Press F9 to further tailor the system with DMutil from within DOSmenu.
NOTES
═════
The installation process does not alter any of your system start-up files.
During installation, the following files will be made in the target directory:
MENU.BAT - default menu startup batch file
DOSMENU.INI - init menu environment file
DOSMENU.MNU - default menu file
DOSMENU.NTE - note file for user/group notices
Check the documentation for specifics on DOSmenu's easy and powerful features.
Enjoy!
STARTUP BATCH FILE
══════════════════════════════════════════════════════════════════════════════
As part of the initial file installation performed by DMutil, the file
MENU.BAT will be made. All DOSmenu files except for MENU.BAT and the MNU
files _must_ remain in DOSmenu's home directory. All users must have READ
rights to this directory. If you move or rename MENU.BAT, be sure to change
it accordingly. You may also move MNU files as long as you call them with
their path. If no path is given, then DOSmenu looks for them in its home
directory.
Here is a commented MENU.BAT:
@echo off ;Cosmetics only
::uncomment variation of next line on networks when you don't want the menu to
:: appear if user is not logged in (especially if MENU.BAT is in LOGIN dir)
REM if not exist f:\public\*.* goto END
::uncomment next line to tell users when menu system is loading
REM echo Loading Menu . . .
f: ;Helps achieve a 'cleaner' logout
cd \login ;"
::add menu name, to end of next line only, if not starting with DOSMENU.MNU
f:\login\dosmenu /batch %1 %2 %3 %4 %5 ;Point to/run DOSmenu
::quitting the menu system? ;255 passed with F10 or 'goto END' passed
if errorlevel 255 goto END ;If so, then leave loop and batch file
::running a new startup batch file? ;254 passed with /NEW or /LOGIN commands
if errorlevel 254 goto NEW ;If so, then leave loop and batch file
::run DOS variable set by DOSmenu
%_dmcmd% ;The DOS command or temp batch file name
::do it again ;Keep running the batch file (and the menu
f:\login\menu %1 %2 %3 %4 %5 %_dmmnu% /rerun ; system) until system stopped
goto END
:NEW
%_dmcmd% ;The new startup batch file name
:END ;Place to go to when quitting
_dmcmd holds either the actual menu command or the temporary batch file path
and name.
_dmmnu holds the name of the current 'main menu'.
Quitting will move to the end of the batch file, thereby stopping the system.
You can place a quit command on your user's menu to do the same thing by
defining a single DOS command for that menu item as 'goto END'.
MENU COMMANDS
══════════════════════════════════════════════════════════════════════════════
F1 HELP Brings up context sensitive help (also Ctrl+F1).
F2 DOS Performs any DOS command from within the confines of the
menu system. Can be password protected.
F3 VIEW DOS Views last DOS screen. If quit timing is enabled and an
F2 password is enabled, this option is password protected.
F4 VIEW NOTE Views any notices that were directed to a user.
F5 PERSONAL Load user's personal menu file. Can be disabled.
F6 EDIT PER Edit personal menu file. Can be disabled.
F7 VIEW CMDS View the actual menu item' command(s). Can be password
protected.
F8 WS STATS Workstation status report (multiple screens). Can send to
LPT1. See HARDWARE MANAGING SERVICE section as well.
F9 EDIT Edit the current menu file, interactively, while running
the menu system. (Ctrl+F9 Edits all menu system files at
one time.) Can be password protected.
F10 QUIT Quits DOSmenu. Can be password protected.
Alt+F1-F5 UTILS Run a common utility program (if defined in DOSMENU.INI).
? ABOUT Perform the About function on a menu item (if defined).
Ctrl+Alt SAVER Immediately invoke the screen saver function.
Esc PREVIOUS Backs up to the previous menu or cancels a question (or
Del).
Mouse Point to an item and run it. Left button = Enter. Right
button = Esc.
Enter RUN Run the highlighted menu item (or Ins or SpaceBar)
(unless the One Key option is used).
Ctrl+EnterUNATTEND Run the highlighted menu item in unattended mode. See
UNATTENDED RUNS section.
SYSTEM SETUP
══════════════════════════════════════════════════════════════════════════════
DOSmenu has two setup phases, the initial default file creation and then
configuration.
DEFAULT MENU FILES CREATION
═══════════════════════════
The installation process copies DOSmenu files to a permanent home directory
and then runs DMutil to make the initial menu file set consisting of
DOSMENU.INI (the init file), DOSMENU.MNU (the menu file shell), DOSMENU.NTE
(the note file) and MENU.BAT (the startup batch).
SYSTEM CONFIGURATION
════════════════════
Installation also allows the first opportunity to edit the DOSMENU.INI file in
order to set the environment for your specific system. You may re-edit this
file at any time by either pressing F9 from within DOSmenu (if you have
appropriate rights) or by running 'DMUTIL' at the command line. The INI file
contains various options and switches that control how DOSmenu (and DMutil)
will work for you and your users. These are discussed here.
[DMutil]
Activate mouse=
───────────────
Default=yes. With the registered version, you may optionally engage use of a
mouse (if a mouse driver is available) or disengage use. Disengaging can be
useful if your system takes a long time to reset the mouse driver when loading
DOS mouse-aware programs.
DOSmenu Startup Batch File=
───────────────────────────
Default={directory you built files in originally}. This option allows DMutil
to load your startup batch file when loading the other menu system files with
the 'DMUTIL' command. This is necessary because you may (and should) move
your MENU.BAT to a directory in the users' path. You may also rename it,
though you must be careful to change the file contents appropriately in that
case. Although not critical, you should enter the path and name of your
startup batch file here.
[Interface]
Use Mouse=
──────────
Default=yes. With the registered version, you may optionally use your mouse
to manipulate your menu. A mouse driver (like MOUSE.COM) must be loaded on
the workstation to enable mouse support.
Desktop Color=
──────────────
Default=71 or 70(mono machines). This number determines the color of the menu
system's desktop background. The first number represents the foreground
color, and the second number represents the background color. If you enter
only one color, then it will represent the background color and the foreground
color will be 0. Entering nothing or 0 will disable the desktop background.
For example:
71 = white on blue
7 = black on white
0 = no background
The standard MS-DOS colors are:
0=black 1=blue 2=green 3=cyan 4=red 5=magenta 6=brown 7=white
Information Color=
──────────────────
Default=7. This single number determines the background color of the
informations lines on the desktop. You may enter a number from 0 to 7. The
colors are identified above.
Clear Screen By Default=
────────────────────────
Default=yes. This sets the menu default to either clear or not clearing the
DOS screen before running menu items. You can override this default with the
{r=clear|noclear} right (see MENU DEFINITION section below).
Use CRT Border=
───────────────
Default=yes. Do you wish your CRT's border to be filled in. This option does
not work on monochrome monitors.
Frame Windows=
──────────────
Default=yes. Do you wish the normal program windows to have a frame?
Max Menu Window Height=
───────────────────────
Default=10. You may enter a number from 3 to 17 to define the max height of
all menu windows.
Use Menu Chevrons=
──────────────────
Default=yes. If no, then the little chevrons that normally appear to the
right of sub-menu items (depicting that the item is a sub-menu) will not be
displayed.
Use One Key Selection=
──────────────────────
Default=no. If yes, then DOSmenu will react like some other popular menu
programs when a user presses a menu selection (with the keyboard or mouse).
It will immediately run the item (versus simply moving to it and waiting for
the user to press Enter). This switch also turns on the automatic generation
of the menu item letters (from A..Z and 0..9) which is necessary to avoid
duplicate item letters. Therefore, you would want to avoid separating a menu
item letter for each item in your menu file.
You should do this (which you may already be doing):
;─────
WordPerfect
wp
;─────
which results in:
A WordPerfect (or B WordPerfect, etc.)
instead of this:
;─────
W WordPerfect
wp
;─────
which results in:
W WordPerfect
Screen Saver Time=
──────────────────
Default=5. 0 disables screen saving. (Only works with registered version.)
Screen Saver File=
──────────────────
Default=[path]dmsaver.exe 1. You may use your own saver as well. KEEP IN
MIND THAT THE SCREEN SAVER FEATURE WILL NOT FUNCTION IF A TIMED LOGOUT HAS
BEEN DEFINED FOR THE SYSTEM (see below). The parameter 1 (or 2 or 3) defines
the screen saver type. Type DMSAVER ? for specifics.
Screen Saver NetWare Password=
──────────────────────────────
Default=yes. If you are on a NetWare network, and you elect to use DMsaver
as your screen saver, then this option will utilize the user's NetWare
password to help protect the user workstation during idle times. NOTE:
The NetWare "Allow Unencrypted Passwords" must be set to ON for this option.
Screen Title=
─────────────
Default=DOSmenu Menu System. You may place your company name or something
similar here, if you desire. If this item is left blank, there will be no
information line at the top of the screen.
Support Comment=
────────────────
Default=For HELP Please Call Computer Support. This phrase will be shown
blinking at the bottom of the main help window.
Item About Viewer=
──────────────────
Default=[path]dmview.exe /n. Define the viewer/editor you wish the users to
access when a menu item has been setup for a menu item About view.
To setup an item for this feature, simply add one indented line below the
menu item's title line starting with a '?'. This is similar to the item help
line that starts with a '#'. For example:
;─────
WordPerfect
#This is a word processor
?f:\public\wp.txt
;─────
The above example will view F:\PUBLIC\WP.TXT with the defined Item About
Viewer when the user points to this menu item and presses '?'. Additionally,
a '?=About' prompt will be displayed at the bottom left corner of the current
menu window when the user points to this menu item.
KEEP IN MIND THAT THE ITEM ABOUT VIEW FEATURE WILL NOT FUNCTION IF A TIMED
LOGOUT HAS BEEN DEFINED FOR THE SYSTEM (see below).
Show Date/Time=
───────────────
Default=yes. If NO, then the updated date and time will not be shown at the
top of the menu screen.
Show F1/F10 Keys=
─────────────────
Default=yes. If NO, then the "F1 Help" and "F10 Quit" keys will not be shown
at the bottom of the menu screen, whether enabled or not.
Use New Main Help Screen=
─────────────────────────
Default=no. If YES, then DOSmenu's main help screen will be the one you
define in the [New Main Help Screen] section of the DOSMENU.INI file
below.
[Network]
Using NetWare=
──────────────
Default=yes. This switch tells DOSmenu whether it should make NetWare API
calls to determine the actual user and server in force when it is running.
If you answer no, and you are using or are going to use DOSmenu on a network,
then you will need to set DOS variables equal to the current network user and
file server from within your network login script and then define those
variables for DOSmenu in the DOSMENU.INI file (options are described below).
For instance, if you set the DOS variable _USER to the actual user ID in
the network login script, then it will be found and used by DOSmenu if
you enter _USER as the user DOS variable in DOSMENU.INI.
Non-NetWare DOS User Var=
─────────────────────────
Default={nothing}. As discussed above, this option allows DOSmenu to find the
user ID when not on a NetWare network (or when overriding the API method).
Non-NetWare DOS Server Var=
───────────────────────────
Default={nothing}. As discussed above, this option allows DOSmenu to find the
server name when not on a NetWare network (or when overriding the API method).
Any-Network DOS Node Var=
─────────────────────────
Default={nothing}. This option allows DOSmenu to use the workstation network
node address as a determinant as to whether a menu item will be available or
not. Also required in order to utilize the Hardware Managing Service.
Private Directory=
──────────────────
Default=c:\. DOSmenu writes temporary batch files to run menu commands
embedded within the menu file _only_ when there is more than one command for
the chosen menu item. These batch files must be written to an area where the
user has WRITE and ERASE rights.
Typically, on networks, a 'private' area is mapped for each user on login as
their personally mapped drive (actually just a network directory based on the
user's ID) on the server. In such a case, you should place that location
here. An example might be H:\ if you had performed a
MAP ROOT F:\USERS\%LOGIN_NAME to H:\ (on a Novell network).
If no such directory is mapped or used on your network, then we suggest using
C:\, which should always be private to the user for every session.
Remember, this batch file is only written if more than one DOS command is
defined as part of a chosen menu item. You may actually specify two private
locations for this option, like
Private Directory=h:\,c:\
to take care of special cases like when a user does not have proper mappings.
You may use the syntax =%var1%,%var2% to use the contents of DOS variables
for this purpose. On a stand-alone environment, private directories are not
needed, so temporary batch files are written to DOSMENU.EXE's home directory.
Use Connection Numbers=
───────────────────────
Default=yes. If no, then the user temp batch file will always be _DMBAT.BAT.
See the TEMPORARY BACTH FILES section for other possibilities.
Allow Personal Menus=
─────────────────────
Default=yes. If yes, then each user may maintain, run and edit a personal
menu file, DOSMENU.PER, that resides in their defined private directory (see
above). Users must have WRITE and ERASE rights to this directory.
Force Personal NoBreaks=
────────────────────────
Default=yes. If personal menus are allowed, this protects the security of
your system by forcing all menu items on the user menu to be run with the
{r=nobreak} right set. This effectively eliminates the possibility of a user
breaking out of a batch file or DOS command by pressing ^C or ^Break.
Strongly recommended. However, understand that any batch file that uses an
embedded NetWare _search_ mapping command will not be honored in this case.
The alternative is to use the included NOBRK TSR utility.
Timed Group=
────────────
Default={nothing}. Enter one group name here to optionally time that group
only if Timed Quit Menu Time= is entered below.
Untimed Group=
──────────────
Default={nothing}. Enter one group name here to optionally ignoring timing
for that group only if Timed Quit Menu Time= is entered below.
Mouse Group=
────────────
Default={nothing}. Enter one group name here to optionally insure mouse
support for its members no matter what the Use Mouse= option is set to.
Nomouse Group=
──────────────
Default={nothing}. Enter one group name here to optionally insure NO mouse
support for its members no matter what the Use Mouse= option is set to.
[Security]
F2 Run DOS Password=
────────────────────
Default={nothing}. If filled in, DOSmenu will require this password before
allowing users the option of composing and running their own DOS commands.
For security reasons, if a user enters nothing or a command that has the word
'command' anywhere within it, then it will be ignored.
F9 Admin Password=
──────────────────
Default={nothing}. If filled in, DOSmenu will require this password before
allowing anyone to edit the menu system files. If no password is defined,
then anyone can edit your menu system. This password is also queried by
DMutil in case someone tries to run DMutil from DOS. This option protects
both the F9 and F7 function key choices.
F10 Quit Menu Password=
───────────────────────
Default={nothing}. If filled in, DOSmenu will require this password before
allowing users the option of quitting the menu system. If no password is
defined, the user is prompted to be sure they wish to quit the menu system.
NOTE: After defining password(s), you should compile the DOSMENU.INI file
to maintain security with
DMUTIL /C DOSMENU.INI
Password Exception Group=
─────────────────────────
Default={nothing}. If filled in, then members of this group will not be asked
for any password from within DOSmenu, even if they are defined.
Use Hardware Managing=
──────────────────────
Default=no. This enables hardware metering. You must fill out the next
option and activate the Node address variable (above) as well. See HARDWARE
MANAGING SERVICE section for specifics.
Manage File=
────────────
Default={nothing}. If managing is enabled, then a path and filename must be
entered here. This file will become the central managing file for your system
(on the current server). Users must have WRITE and ERASE rights to this file.
Use Software Metering=
──────────────────────
Default=no. When enabled, the METER right will be enabled in your menu
system. You will be able to meter any DOS software application your users
employ, which can help keep you and your company out of trouble. See the
SOFTWARE METERING SERVICE section for specifics.
Meter File=
───────────
Default={nothing}. If metering is enabled, then a path and filename must be
entered here. This file will become the central metering file for your system
(on the current server). Users must have WRITE and ERASE rights to this file.
Use Logging=
────────────
Default=yes. When enabled, the user's log file is appended whenever a user
performs a menu action. The file is normally kept in the private directory.
Central Logging=
────────────────
Default=no. If yes, then one log file for all users is written to the file
specified in the next entry.
Central Log File=
─────────────────
Default={nothing}. Where to write central log information to, if activated.
Users must have WRITE and ERASE rights to this area.
Max Log File Size=
──────────────────
Default={nothing}. If you enter a number here, then DOSmenu will delete the
log file when its gets to the size you specify, like:
Max Log File size=500000.
Timed Quit Menu Time=
─────────────────────
Default=0. This option, if enabled, allows you to control your user's allowed
time of inactivity before forcing them off of the network (or simply out of
the menu system). Entering 0 or nothing disables this function.
Timed Quit Menu Command=
────────────────────────
Default=logout. If automatic quitting is enabled via the option above, then
whatever is placed in this option will be run when the automatic quit is
invoked. Obviously entering 'logout' will log the user out of a Novell
network. If you simply wanted to remove a user from the menu system at
automatic quit, then enter 'goto end' here. This in affect will take the user
out of the MENU.BAT internal loop that normally keeps DOSmenu going.
Admin Group=
─────────────
Default={nothing}. If filled in with a group name, then members of this
group will be able to see all menu items that are restricted by u= and g=
(user and group rights are ignored). This is for administrator testing only
and, while running this way, the user is subject to the maximum number of
sub-menus and any other memory limits.
Admin User=
─────────────
Default={nothing}. If filled in with a user login name, then this user will
be able to see all menu items (all rights are ignored). This is for
administrator testing only and, while running this way, the administrator is
subject to the maximum number of sub-menus and any other memory limits.
[Global Keys]
AltF? Text= (where ? = 1 to 5)
───────────
Default={variable}. These lines determine what text will show by a global
alternate function key.
Alt? Cmnd= (where ? = 1 to 5)
──────────
Default={variable}. These lines hold the DOS command for the appropriate
global alternate function key. These commands are always shown, when defined,
and are run with the {r=nobreak} option, just like F2 DOS commands. If no
commands are defined, then pressing the Alt key will not show them on screen.
[New Main Help Screen]
Default={sample text for help lines}. If 'Use New Main Help Screen=yes'
above, then this section is where you define your own main help screen. Keep
in mind that the maximum number of lines that can be shown is 20 and the
maximum length of these lines is 70 characters. Any line starting with a ';'
will be considered a comment and will not be shown or counted. Be sure not
to use any Tab characters on these lines as they will be interpreted
improperly on you help screen.
MENU DEFINITION
══════════════════════════════════════════════════════════════════════════════
There are two conventions used to control the menu(s) a user gets when running
the menu system, server-based and rights-based. We will briefly both describe
and show example code, offset with ';─────', throughout.
SERVER-BASED CONVENTION
═══════════════════════
Approaching a menu file from the top down (in a vertical sense), it can be
thought of as a server-based system. This can become quite robust, as in our
eight-server domain or quite simple, as in the case of a single server or a
stand-alone environment. Basically, the file is divided vertically into
server sections that are defined by the actual server name. An all
encompassing name is also allowed, ALL. Each server name, and ALL, must start
at the beginning of a line with a colon, like :OUR_SERVER or :ALL. You can
have more than one section defined with the same server name, such as an :ALL
section at the beginning and at the end. Here is a segment of a menu
definition showing the vertical server-based method:
;─────
%Main Menu
:ALL
Word Perfect
wp
:MAIN_SERVER
Paradox
paradox
Lotus 1-2-3
123
:SECOND_SERVER
Proprietary application
ourapp
:ALL
Logout of the network
logout
;─────
In the above example, you can see that a person who is running on the main
server would get the following main menu:
─────
Word Perfect
Paradox
Lotus 1-2-3
Logout of the network
─────
while a person running on the second server would get:
─────
Word Perfect
Proprietary application
Logout of the network
─────
Note that any menu items (and sub-menus and their items) may be accessible
depending upon which section they are placed under, subject to the next
convention of discrimination, rights-based, which is discussed below.
RIGHTS-BASED CONVENTION
═══════════════════════
A secondary, more powerful means of segregating the menu file between users is
the rights-based method. Think of the rights-based convention in the
horizontal sense. In other words, after deciding which server a user is using,
we then must decide what the rights of that user are, and this convention does
just that. Let's discuss each method in detail.
All rights assumed
──────────────────
Right = no right line entered. This method actually checks nothing. In other
words, a menu item will show up on a user's menu if it is under the correct
server name (or ALL), period. In this case, you will be relying on your
defined network rights to determine whether a user will be able to _run_ a
menu item or not (they will always see the items on their menu). This method
is, of course, exactly what you would want to use on a stand-alone
environment.
;─────
Paradox
paradox
;─────
User gets item if it is available, period.
Directory rights
────────────────
Right = {d=directory name or d=directory name1,directory name2 ..}. DOSmenu
looks to see if any of the listed directories exist for the user when it reads
the menu file, and if none do, it does not place the item on the user's menu.
;─────
Paradox
{d=c:\apps\paradox}
paradox
;─────
User gets item only if F:\APPS\PARADOX is 'visible' in the user's environment.
File rights
───────────
Right = {f=file name or f=file name1,file name2 ..}. DOSmenu looks to see if
any of the listed files exist for the user when it reads the menu file, and if
none do, it does not place the item on the user's menu.
;─────
Paradox
{f=f:\apps\paradox\paradox.exe}
paradox
;─────
User gets item only if F:\APPS\PARADOX\PARADOX.EXE is 'visible' in the user's
environment.
Server rights (NetWare only unless DOS variable/command line parameters used)
─────────────
Right = {s=server_name1 or s=server_name1,server_name2 ..}. Do not confuse
this method with the server-based convention. Here, by placing one or more
server names with a menu item, you are saying only show this item when the
user is logged into one of those servers.
;─────
Paradox
{s=main_server}
paradox
;─────
User gets item only if the user is logged into and running on MAIN_SERVER.
Group rights (NetWare only unless DOS variable/command line parameters used)
────────────
Right = {g=group_name1 or g=group_name1,group_name2 ..}. Normally you define
groups to group certain users that you can later assign trustee rights to,
thereby giving them access to certain programs. This method allows you to use
that work when discriminating in your menu system. There is an advantage
here, however, in that even if you do not bother with trustee rights and your
network is open, DOSmenu will act like it is all set up just right. In other
words, DOSmenu doesn't care about actual rights; it only cares about whether
the user is in the group name or group names that you tell it. If not, then
the user does not get the menu item displayed (and therefore cannot run it).
;─────
Paradox
{g=paradox}
paradox
;─────
User gets item only if a member of group PARADOX.
User rights (NetWare only unless DOS variable/command line parameters used)
───────────
Right = {u=user_id or u=user_id1,user_id2 ..}. This method takes the
discrimination down to the actual user ID running the system. If the user
name is in the list, then the user gets the item on their menu (if any other
specified rights are also approved and the server-based convention allows it).
;─────
Paradox
{u=joeb}
paradox
;─────
User gets item only if his user logon ID is JOEB.
Node rights (DOS variable/command line parameter is required for this right)
───────────
Right = {n=node_address or n=node_address1, node_address2 ..}. This method
takes the discrimination down to the actual workstation. If the node address
is the same as the workstation, the user gets the item on their menu (if any
other rights are also approved and the server-based convention allows it).
;─────
Paradox
{n=fa164505}
paradox
;─────
User gets item only if his workstation's address is FA164505.
You must pull the workstation's node address to DOS by setting it to a DOS
variable from within the network's initial login script. Only then can you
check for it from the menu system.
Environment rights
──────────────────
Right = {e=dos_env_var~env_var_text, ..}. This powerful right tests for the
contents of a DOS variable. For instance, to run a menu item depending on
what room a person is in, set ROOM=room_number at login; then enter this right
for the menu item in the menu file: {e=room~102} to test for room 102. To
test whether the var room is null (does not exist), type {e=room~}.
Today rights
────────────
Right = {t=su,mo,tu,we,th,fr,sa}. This right tests to see if the current day
is equal to the day specified.
Date greater than rights
────────────────────────
Right = {>=MM/DD/YYYY}. This right tests to see if the current day is greater
than the specified date (must be in this format).
Date same as rights
───────────────────
Right = {==MM/DD/YYYY}. This right tests to see if the current day is the
same as the specified date (must be in this format).
Date less than rights
─────────────────────
Right = {<=MM/DD/YYYY}. This right test to see if the current day is less
than the specified date (must be in this format).
Hour greater than rights
────────────────────────
Right = {)=HH}. This right tests to see if the current hour is greater than
the specified hour (must be in 2-digit 24-hour format).
Hour same as rights
───────────────────
Right = {-=HH}. This right tests to see if the current hour is the same as
the specified hour (must be in 2-digit 24-hour format).
Hour less than rights
─────────────────────
Right = {(=HH}. This right test to see if the current hour is less than the
specified hour (must be in 2-digit 24-hour format).
For hour rights, keep in mind that the shown menu items are update every time
the user leaves the menu and returns (like when running a program or the
screen saver activates). So a user who sits in the menu to another hour may
have inaccurate menu items until the menu is somehow refreshed.
Date and Hour together example: To show a menu item only during business hours
in July of 1994: {>=06/30/1994} {<=08/01/1994} {)=07} {(=18} which means show
only after June 30th and before August 1st of 1994 and then only after the
hour of 7 am and before the hour of 6 pm.
Password rights
───────────────
Right = {p=password where password is any alphanumeric, non-case sensitive,
from 1 to 10 characters long}. Placing a password on a menu item means that
when the user selects this item (no matter what type it is - command or
sub-menu), the user will be prompted for the correct password.
;─────
Paradox
{p=restrict}
paradox
;─────
User gets item only if he or she can answer the password prompt with RESTRICT.
Question rights
───────────────
Right = {q=your question that demands a yes/no answer?} This method pops up
your question for a Yes/No answer. If No, then the item will not be run.
If a '!' is placed prior to the question, {q=!comment}, then the question
becomes a comment only.
;─────
Paradox
{q=Are you sure?}
paradox
;─────
View rights
───────────
Right = {v=text_file_name}. This method reads the text file and then displays
it in a window on screen. The user can press escape to abort running the menu
item. A maximum of 20 lines of 72 characters or less will be shown.
Software metering rights
────────────────────────
Right = {m=command:number}. Entering this right on an item's right line will
force the command for the item to be metered, if metering is turned on and the
meter file has been defined (within DOSMENU.INI). See the SOFTWARE METERING
SERVICE section for a complete discussion.
;─────
W WordPerfect
{m=wp51:25}
f:\apps\wp\wp
;─────
This item runs as long as less than 25 users are running it at the same time.
Run rights
──────────
Right = {r=nobreak,clear,noclear}.
NOBREAK: This is where you determine whether batch files will be run with a
second copy of the DOS command processor (NOBREAK) or not. This right is only
appropriate when running multi-line commands (which DOSmenu turns into batch
files) or by running batch files; it should not be used unless batch files are
being run (and then it is your choice). One disadvantage of running NOBREAK
is that NetWare search mapping commands generated within a batch file will not
work. Consider the included NOBRK TSR utility for fool-proof disabling of the
^C and ^Break keys.
;─────
M My batch file
{r=nobreak}
dir \
pause
;─────
CLEAR|NOCLEAR: This simply clears/does not clear the DOS screen before
running the menu item command; else the DOSMENU.INI default decides.
Location rights
───────────────
Right = {l=one_to_three_letters}. You may optionally place this right on a
notice to set the location of it on the screen, like:
;─────
{l=tl}
A note
;─────
where T=top, L=left, B=bottom, and R=right, N=noise and F=Flash title.
NOTES
═════
More than one of the above methods may be used at one time, either within the
same right grouping or by having two or more groupings separated with a ';'.
For example, you can place both a server (s=) method and a group (g=) method
on the same menu item, like:
;─────
Paradox
{g=paradox} {s=server1}
paradox
;─────
Here, it is read as member of paradox group _AND_ on server1.
;─────
Paradox
{g=paradox;s=server1}
paradox
;─────
Here, it is read as member of paradox _OR_ on server1.
Note that when using more than one grouping, each of the groupings must be
true for the item to be shown (they are ANDed). When using one or more
methods within the same group, they are ORed.
Placing a '!' before a name means 'not'. Where {g=paradox} means if the
current user is a member of group paradox, then display the menu item;
{g=!paradox} means display the item only if the current user is NOT a member
of group paradox (they are ORed only within each set of braces {}).
You may use spaces instead of commas. The syntax {g=group1,group2} is the
same as {g=group1 group2}.
The biggest rule that you must remember about the rights methods are that
within each set of braces {}, the answer must be true. So if you use more
than one set of braces for a menu item, they all must be true. For example:
;─────
P Paradox
{g=paradox} {u=joe,jim;n=fa164505} {s=!server2}
;─────
will only show on the menu if the user is a member of the PARADOX group _AND_
the user is JOE _OR_ JIM _OR_ the node address is FA164505 _AND_ the user is
not on SERVER2.
TESTING YOUR MENU
═════════════════
After you have placed a lot of restrictions on your menu items, you may find
it frustrating to see what the final outcome of an item looks like. There is
a way around this. Enter a bogus user ID [server name] [node address] from
the command line. For instance, if you wish to check the menu appearance for
John on APPSERVER at station F6085678, then enter the startup batch file with
the command
MENU /U:JOHN [/S:APPSERVER] [/N:F6085678]
This will bring up the menu with the above restrictions so that you may run
through the sub-menus and check it out.
You may also use the /T switch to temporaily ignore most rights phrases, like
u=, g=, s=, d=, f=, n=, t=, etc. for debugging purposes.
MENU /T
MENU RULES
══════════════════════════════════════════════════════════════════════════════
The syntax for the menu file requires certain conventions. In most cases,
DOSmenu will issue an error message if it has trouble interpreting the file
because of a syntax violation of one of the below described rules. If you get
stuck in an error loop within the batch file, press Alt-F10 at the read error
message window to quit.
RULES
═════
Main menu name
──────────────
The first line of the file must be the main menu's name, starting with a
percent symbol '%'. You can optionally place the starting x and y coordinates
of the menu window after the menu name, like: %Main Menu, 5, 10. This means
the upper left corner of the menu will be 5 columns from the left edge and 10
rows from the top.
Server sections
───────────────
There must be at least one server name before any menu items, unless
operating in a standalone environment. In a network environment, use :ALL, as
a minimum, just after the main menu title and the one REQUIRED blank line.
Comments
────────
Any line starting with a semi-colon ';' is a programming comment only.
Blank lines
───────────
Blank lines are only allowed (and, in fact, REQUIRED) before server sections
and menu titles. See EXAMPLE MENU FILE section for a properly formatted file.
Menu action character
─────────────────────
The first letter of a menu item will always be highlighted and will be
searched when the used presses a key to move to a particular menu item. It
may or may not be part of the first word of the menu item. For example,
Lotus 1-2-3
and
L Lotus 1-2-3
offer the same result. It is a cosmetic choice that you must make. Of
course, you could also use
1 Lotus 1-2-3.
The above characteristics are only true if the 'Use One Key Selection' option
in the DOSMENU.INI file =no (the default). Ify it =yes, then when the user
presses the menu item letter, it will run immediately. Also, DOSmenu
auto-generates the menu item letters in this case to prevent possible
duplicate letters. Therefore, you would want to enter all menu items into
your menu file like
Lotus 1-2-3
without a leading, separated menu item letter.
Indenting
─────────
All server name lines and menu item lines must NOT be indented. All help
lines, rights lines and DOS commands MUST be indented at least one space. A
tab character is allowed for the indentation.
Rights line length
──────────────────
The maximum length from the beginning of the rights ({}{}..) line from
beginning to end (not including spaces or beginning tabs) is 120. You may
have more than one rights line per menu item for convenience, put there
character count must all add up to 120 or less.
Parameters
──────────
Menu items may be setup to ask (and require) the user for a parameter prior
to actually running the command associated with the menu item. Place '<>' or
'[]' (for required) at the exact location you wish to add input to the
command. Here are some examples:
dir <> /p
chkdsk []:
format []: /u
For multi-command items and multi-response items, use the DMquery syntax.
See FILLING IN THE COMMAND LINE section for more.
Sub-menu names
──────────────
All sub-menu names, both when called as a command and when entered as a
sub-menu title, must start with the percent symbol '%'. There MUST be a
blank line before the sub-menu name. Sub-menus must come somewhere _after_
the menu item that calls them.
Help lines
──────────
Help lines for each menu item, if used, must be indented and start with a
number symbol '#'. There can be a maximum of one help line per menu item.
About Lines
───────────
About lines for each menu item, if used, must be indented and start with a
question mark symbol '?'. There can be a maximum of one about line per menu
item.
Menu commands
─────────────
If you place a %dos_var% syntax within the command, the actual DOS variable's
text will be used. Make sure the first '%' is not the first character of the
command or it will be interpreted as a sub-menu name. When this is necessary,
place 'call' in front of the command, like:
call %drive%:\apps\paradox
NOTES
═════
You may rename DOSMENU.MNU to another name or copy it to another menu file
because DOSmenu will run any menu file that you have as long as you
specify that file name on the command line. Note that the '.MNU' is assumed.
No other extension is allowed.
MENU PATH\MYMENU.MNU
and
MENU MYMENU
will both attempt to load MYMENU.MNU, the later from DOSmenu's home directory.
LOADING ADDITION MENUS
══════════════════════
You may switch menu files from within the menu system by LOADing them or
/MENUing them. This is accomplished by placing the /LOAD [PATH]MENU_FILE or
/MENU [PATH]MENU_FILE as the first and only command line for a menu item,
like:
;─────
Support Menu
/load [path]support[.mnu]
;─────
Here, the system will load the SUPPORT.MNU menu file (from DOSmenu's _home_
directory if no path is given) to temporarily replace the active menu file.
You may do this an unlimited number of times. After a command is run, the
original main menu reloads.
To prevent the original main menu from reloading, use /MENU. This command
forces the menu to become the permanent new default main menu. If you wish
users to have the option of going back to the original menu later, you will
have to give them that option with another /MENU command in the new menu,
like:
;─────
M Main Menu
/menu [path]dosmenu[.mnu]
;─────
CHAINING STARTUP BATCH FILES
════════════════════════════
You may switch to another startup batch file (perhaps on an another attached
server?) from within a menu. This is accomplished by placing the /NEW
[PATH]BATCH_NAME[.BAT] as the first and only command line for a menu item,
like:
;─────
Support Menu
/new [path]support[.bat]
;─────
Here, the system will quit the current batch file, dumping the menu
environment variable, and run the [PATH]SUPPORT.BAT batch file. This file now
becomes the new cyclic batch file that operates DOSmenu. To get back to the
original startup batch file, issue another /NEW command from your active menu
file.
LOGGING IN TO OTHER SERVERS
═══════════════════════════
You may login to another server from within a menu. You do this by placing
the /LOGIN command before the actual command that calls your login sequence.
The difference between /NEW and /LOGIN is that /LOGIN does not check to see if
your command actually exists (it would be impossible) and the command does
not have to be a batch file. Therefore, you should attempt to be sure your
login sequence will protect you in case the user fails the login. DMlogin
works great in this regard. It keeps you users from DOS, period, until the
login is successful. Of course, the new server login script should (really
must for security) call another DOSmenu startup batch file on the new server.
Place the /LOGIN [PATH]COMMAND as the first and only command line for a menu
item, like:
;─────
Login to Support
/login [path]support[.bat]
-or- /login login server2/user1
-or- /login login /pro=server2 server2/user1 ;for NetWare Naming Service
;─────
Here, the system will quit the current batch file, dumping the menu
environment variable, and run your command file (which should attempt a login
sequence).
SUB-MENUS
══════════════════════════════════════════════════════════════════════════════
Sub-menus are just like the main menu except that their title is the first
line of their definition. The main menu's title is the first line of the
menu file. Their title must start with a percent '%' character, and when
called from another menu item, this percent character must be included.
;─────
%Main Menu
Word Perfect
wp
Utilities
%Utility Menu
Paradox
paradox
;The , 5, 10 is optional and determines x and y menu window coordinates
%Utility Menu, 5, 10
Directory of...
dir <> /p
Check disk
chkdsk []:
;─────
Here, the sub-menu '%Utility Menu' is called from one of the main menu items.
Sub-menus follow the server-based convention along the vertical development of
the menu file. In other words, if a sub-menu is found under the :SERVER2
server name line, then it will not be accessible from a menu calling it which
is situated under :SERVER1. Sub-menus are typically placed at the end of the
menu file under an :ALL alias server name section.
Although you may place up to 40+ sub-menus per menu file, we recommend less.
This is to protect the integrity of your network (DOSmenu will not load if
there is not enough memory). Remember, you may always load additional menus
with the /LOAD and /NEW commands.
COMPILING MENU FILES
══════════════════════════════════════════════════════════════════════════════
The DMutil program will compile and decompile INI and menu files, if desired.
The syntax is:
DMUTIL /C [PATH]FILENAME
The output compiled file will be the same name. You can then later decompile
the file with the command:
DMUTIL /D [PATH]FILENAME
Compiling INI and menu files is not required. Your users can run DOSmenu
without ever compiling one file. However, security is a great reason to
consider compiling them after they have been tested.
TRANSLATING MENU FILES
══════════════════════════════════════════════════════════════════════════════
You can easily translate NetWare batch files to DOSmenu batch files with the
DMutil utility with the following command:
DMUTIL /T [PATH]NETWARE_MENU_NAME
The generic default server name flag :ALL will be placed two lines after the
main menu title, giving access to all servers initially.
If your NetWare menu used any @variable"fill-in lines", then you must change
them within the new menu file to DOSmenu's format as it uses the external
DMquery utility for this purpose with additional options.
TEMPORARY BATCH FILES
══════════════════════════════════════════════════════════════════════════════
Normally DOSmenu takes a menu's DOS command and stuffs it into the DOS
variable _dmcmd so that the startup batch file, MENU.BAT, can then run it
after DOSmenu quits. However if their is more than one DOS command, DOSmenu
instead makes a temporary batch file and stuffs that name into the variable
instead.
The location and name of the temporary batch file is as follows:
Name
────
On a Novell network, the name will be _DMBATn.BAT where n is the actual
network connection number taken by the user's workstation. (_DMBTnnn.BAT is
used if the connection number is greater than 99.)
If not on a Novell network, or the option 'Use Connection Numbers' is set
to NO, then the batch file is simply named _DMBAT.BAT.
Location
────────
If the Private Directory option in the INI file was filled out with a
directory, then the batch file will be written and run from that directory.
If not, then it will be written and run from DOSMENU.EXE's home directory,
which is fine for stand-alone environments.
Notes
─────
The DOS batch file word 'call ' is placed at the beginning of every line that
does not start with a ':' (which could be a label). This syntax _only_
affects commands that are actually batch file names, allowing them to return
to DOSmenu's temporary batch file at completion.
Example
───────
If a menu item looked like this:
;─────
Word Perfect
f:
:RUN-IT
cd\apps\wp51
wp
h:
cd\
;─────
then the corresponding batch file would look like this:
@echo off
call f:
:RUN-IT
call cd\apps\wp51
call wp
call h:
call cd\
DOS ENVIRONMENT VARIABLES
══════════════════════════════════════════════════════════════════════════════
DOSmenu uses DOS variables to make the system work without _any_ overhead;
user ID, server name, workstation node address, command for a selected menu
item, last time the DOSMENU.NTE file was changed (for noticing), software
metering application, and name of the last 'main menu' used.
The node address variable needed if you intend to restrict any menu items by
comparing a workstation's node address. In a Novell network, you could define
this variable like:
DOS SET _NODE="%P_STATION"<<4
where the <<4 takes the first 4 numbers away from the actual twelve digit
address.
The user ID and server name variables are _only_ needed if you are not running
on NetWare and are not on a stand-alone environment. In this case, you define
and load two DOS variables once during the user login script with the correct
information.
DOS SET _USER="%LOGIN_NAME"
DOS SET _SERVER="%FILE_SERVER"
where _user and _server and be called anything you wish. You would then add
these two names two the INI file so DOSmenu will know what they are called.
It takes care of the rest.
The variable for the menu item command is called _dmcmd and is always used.
The variable _dmnte is used when you wish to leave dynamic notices to
any and all users.
The menu name variable, _dmmnu, keeps track of the last permanent main menu
used in DOSmenu before quitting to the batch file as well as the last
sub-menu and item selected.
The _dmmtr variable holds the meter rights issued with the current DOS
command, if any.
DMquery also uses environment variables. It will use up to 9 variables named
_dmq1, _dmq2, .., _dmq9.
NOTICING
══════════════════════════════════════════════════════════════════════════════
DOSMENU.NTE is used to leave notices to any and all users -dynamically. Here
you may place notices based on the rights defined for each notice. Each
notice consists of at least two lines; line 1 contains the rights and the
following lines (up to 10) contain the actual notice, like:
;─────
{g=paradox} {s=server1}
Paradox will be down on SERVER1 all day today.
Hopefully it will be up tomorrow...
;─────
Here, only users in group PARADOX on server SERVER1 will get this notice.
Each user may have up to 15 active notices. Each notice may have up to 10
lines of up to 70 characters long.
You can add and subtract from this section anytime throughout the day. When
a user starts the menu system, and after returning to the menu system (from
commands, etc), the notices are checked and shown, if needed. This gives the
noticing system a dynamic quality that can be quite useful to you as an
administrator!
The time stamp of the file when the user reads notices is kept in a DOS
variable called _dmnte. This variable is checked each time a user reloads the
menu system after running a command. If you have made a change to the
DOSMENU.NTE file during that time, then the user will see the notices again,
and the variable will be updated.
PERSONAL MENUS
══════════════════════════════════════════════════════════════════════════════
On a network, each user may use and maintain one personal menu, named
DOSMENU.PER. This menu file is kept and read from the user's defined private
directory.
The F5 key will load the menu for the user so he/she can use it. After
running a command from it, DOSmenu will return to the last shared main menu.
If the personal menu does not yet exist, a simple menu will be created for the
user first.
The F6 key allows the user to edit the personal menu with DMutil. All
commands that would grant access to other parts of your network are disabled
while the user is editing the menu. Only the SAVE and QUIT commands are
enabled.
To disallow the personal menu option, set the "Allow Personal Menus" line to
NO in DOSMENU.INI.
If allowed, we recommend setting the "Force Personal NoBreaks" line to YES.
Otherwise, a user may be able to break of some DOS batch commands. One
disadvantage to using this approach is that any NetWare search mappings
contained within a batch file will not work. An alternative approach would be
to set nobreaks to false and instead use the included NOBRK TSR utility, which
ensures complete nobreak protection without affecting network batch file-based
search mappings.
PICKING FILES FROM LISTS
══════════════════════════════════════════════════════════════════════════════
While building your menu, you may have the need to show users a "pick list"
of possible choices before the user actually runs the menu item command.
That is easy to do with DOSmenu!
This is accomplished by placing a '{{' in a command line immediately followed
by a file specification and a '}}' just after it.
Additionally, there are two ways to do this -- 1) use a file specification
and 2) define a file that holds the pick list. A few examples will show the
way here.
Using a file specification
──────────────────────────
1. Which WordPerfect file to edit?
;─────
E Edit A WordPerfect File
wp {{f:\data\wp\*.doc}}
;─────
2. Which file to view with DMview (and don't allow printing)?
;─────
V View A Documentation File
dmview /n {{f:\login\dm*.doc}}
;─────
3. Which program to run?
;─────
R Run A Program
{{f:\public\*.exe}}
;─────
4. Which files to see (in wide view)?
;─────
W Directory Of Your Data
dir {{f:\%user%\data\*.*}} /w/p
;─────
Defining a pick text file
─────────────────────────
Instead of relying on a particular file specification, you may make the pick
list be anything you wish. Simply place the pick items you want to show the
user on separate lines in a text file and then use the text file as the pick
specification with a '@' in front of it. For example:
Contents of F:\LOGIN\DMLIST.TXT:
C:\AUTOEXEC.BAT
C:\CONFIG.SYS
C:\WINDOWS\SYSTEM\SYSTEM.INI
C:\WINDOWS\WIN.INI
;─────
E Edit System Files
ed {{@f:\login\dmlist.txt}}
;─────
Contents of F:\LOGIN\DRIVES.TXT
A:
B:
;─────
F Format A Drive
format {{@f:\login\drives.txt}} /u
;─────
Contents of F:\LOGIN\RUN.TXT
SYSCON
FILER
PCONSOLE
PRINTCON
;─────
R Run A Network Program
{{f:\login\run.txt}}
;─────
You can also define a pick text file to have both shown pick verbage onscreen
for the user and a separate command. For instance, the following
TEST.TXT file contents:
;user text command text
Format Drive A ;A:
Format Drive B ;B:
shows
Format Drive A
Format Drive B
in the pick list for the user, but actually passes the text
A:
B:
back to your menu item command line (depending upon which one was picked) as
the substitute for the {{@TEST.TXT}}! So your pick lists really can be
anything you want them to be.
As you can see, the possible uses are nearly endless. Here are the rules.
o The first {{ character is used to determine the pick specification
(there may only be one pick per command line).
o The file specification is any text surrounded by {{ and }}.
o If more {{}} are found on a command line, they will automatically be
replaced as well.
o This option may be combined with the fill option, described in the next
section (see below).
o In the optional pick text file, if a ' ;' is found, it is used to
separate the shown pick verbage from the actual command.
For defined text pick files, these parameters apply:
o A maximum of 250 items can be shown.
o The maximum width of a pick item may be 67 characters.
o Any line/item starting with a ';' is a comment. So are blank lines.
That's all there is to it. Give it a try; we think you find this feature
to be very useful, flexible and powerful -- and we think you will like it.
FILLING IN THE COMMAND LINE
══════════════════════════════════════════════════════════════════════════════
Sometimes it may be desirable to allow the user to finish making a menu item
command while the user is using the menu. This is also easy to do with
DOSmenu!
This is accomplished by placing a '<> or '[]' (for required input) anywhere
within a command line (where you want the user input to be added). This
option works very nicely with the file pick option described in the preceding
section (see above). For example:
Let's say you wanted to ask the user which directory to show when asking:
WordPerfect file to edit?
;─────
E Edit A WordPerfect File
#Enter the 2-digit month and the 2-digit year, like (0994)
wp {{f:\data\wp\[]\*.doc}}
;─────
Here, the user is presented with a question box in which they would fill in
the month and year to complete the directory path. Then DOSmenu shows a pick
list of files in that directory for the user to choose from. Remember, the
help line will remain at the bottom of the screen to help them fill in.
You could even do this:
wp {{f:\data\%user%\wp\[]\*.doc}}
in which case the user's login name would also help fill out the directory
path.
Of course, this fill in option can be used by itself:
dir <> /p
-or-
wp f:\data\wp\[].doc
which would immediately run WordPerfect with the file name the user
specifies.
As you can see, the possible uses here are also nearly endless. Here are the
rules.
o The first <> or [] set is used to determine the fill point (there may
only be one fill per command line).
o If more <> or [] are found on a command line, they will automatically be
replaced as well.
o This option may be combined with the pick option, described in the
preceding section (see above).
That's all there is to it. Give it a try; we think you will like this
feature also.
Note that the user will be restricted to the fill portion of the command
line, thereby protecting you from having a user change your commands!
UNATTENDED RUNS
══════════════════════════════════════════════════════════════════════════════
It is possible to run a menu item at a later time. This is accomplished by
highlighting the menu item and then pressing Ctrl+Enter.
You can only run actual menu items in unattended mode. Sub-menus and new menu
items will not run this way. Additionally, this feature only works if the
'Timed Quit' option in the DOSMENU.INI file has not been set (see MENU
DEFINITION section).
After pressing Ctrl-Enter, you will be asked for a time to run the highlighted
menu item. You must enter this time in 24-hour time and in HH:MM format.
Example: 01:30 for 1:30 am -or- 23:30 for 11:30 pm
When the unattended item run time comes, the item will run just as if you had
pressed Enter on it. Any question, comment, or view rights associated with
that item will be ignored to facilitate the unattended run. However, password
rights are never ignored. Therefore you should be sure that the item you wish
to run in attended mode does not have a password right assigned to it. Of
course, you should also make sure the item does not call DMquery for batch
file questions.
A clear sign is posted on the computer screen to make sure it is obvious the
computer is waiting for an event.
You must press Esc twice to cancel the unattended operation.
DMUTIL MAINTENANCE UTILITY
══════════════════════════════════════════════════════════════════════════════
COMMAND PARAMETERS
══════════════════
The DMutil program keeps all of your menu maintenance requirements in one
utility. Nearly anything you need to do to your menu system can be done with
DMutil.
Here is the command syntax:
DMUTIL ?
DMUTIL /M|T|C|D [PATH]FILENAME
DMUTIL
DMUTIL [PATH]FILE|[PATH]SPEC [[[PATH]FILE|[PATH]SPEC] ..]
DMUTIL /L [USER_ID]
where:
? = DMutil and system installation quick help
/M = Makes default DOSmenu BAT, MNU, INI, and NTE files
/T = Translates NetWare menu files
/C|D = Compiles|Decompiles DOSmenu INI, MNU, or NTE files
= Edits all menu system files at once
FILE.. = Edits any number of text file(s) up to 64K in length each
/L = parses specific user ID entries from the central log file, if used.
THE MENU FILE EDITOR
════════════════════
The editor is a simple ascii text editor that has specific help screens to
give you some on-line help on all menu file types. Any ascii editor can be
used to edit the startup BAT, INI, MNU and NTE files (if they have not been
compiled).
It's operation is self-explanatory, but a few items are worth mentioning:
o Edits files with any DOS attribute set and then resets those attributes
afterwards.
o Automatically decompiles - edits - recompiles your menu files for you.
o Can edit many text files at once with commands like \WINDOWS\*.INI, etc.
o Can show tabs and spaces in a file on screen.
o Press Alt+H inside DMutil for specific setup help screens.
RUNNING FROM DOSMENU
════════════════════
DMutil can be run from DOSmenu with the F9 or Ctrl+F9 keys.
With Ctrl+F9, all menu system files are brought up at once (just like calling
DMUTIL from the command line).
With F9, only the current menu file is edited. In addition, DMutil will take
you to that point in the file that contains the menu item you were poiting to
in DOSmenu, making spot menu edits a dream.
When a user presses F6 to edit their personal menu, again DMutil is called to
perfrom the editing function.
HARDWARE MANAGING SERVICE
══════════════════════════════════════════════════════════════════════════════
DOSmenu includes a powerful capability called hardware managing which enables
you keep track of hardware specifics for all workstations on your network.
DOSmenu utilizes the DMmanage utility for this purpose.
There are more expensive and perhaps more foolproof offerings on the market
for this service, but DOSmenu does the job simply and inexpensively. We
tried to keep it simple yet effective for you, the administrator.
To set up managing:
1. Place these commands in the DOSMENU.INI file:
Use Managing=yes
Manage File=f:\share\dosmenu.man (or something like that)
Users must have WRITE and ERASE rights to the above area.
3. Make sure you have properly setup the node address variable in the
DOSMENU.INI and your network login script (see the DOS ENVIRONMENT VARIBALES
section).
That's all there is to it!
DMmanage will start and keep a database for you that compiles the following
information:
NODE -The workstation's node address. Database is sorted on this field.
Will be made 8 characters long (if your node addresses are longer,
the last 8 characters will be used).
YYMMDD -Year, month, day of last update. By default DMmanage only updates
once a day, when necessary.
DOS -The DOS version.
CRT -The CRT card type.
DOS -Available DOS conventional memory at sample time.
EXT -Total extended memory.
A: / B: -Capacity of floppy drive.
C: / D: -Size of hard drive.
CPU -Type of CPU. Note: This version of DMmanage cannot denote a
pentium processor. A 386 CPU _may_ actually be a Pentium.
FPU -Type of math co-processor. Note the Pentium exception above.
SPD -Approximate speed of CPU (can vary slightly).
USER -Last user when sample was taken (to help _find_ the machine). Will
be truncated to 6 characters. A user name will not be entered if
you are not using NetWare and the DOSMENU.INI file has not been
completed properly. The character just after the USER label is an
internal database version number for DMmanage.
To purge the database of old workstation records, type
DMMANAGE /P:n {where n is the number of days of age to use for purging}
The purge age default is 30 days.
To make this database a comma-delimited file which can easily be imported into
most other programs, type
DMMANAGE /D
and the file DOSMENU.ASC will be made in the same directory as the database
file.
For a quick screen output of any workstation (whether set up in DOSMENU.INI
or not), type
DMMANAGE
DMmanage is normally run by DOSmenu the first time the menu system is
started only (if turned on in DOSMENU.INI) and only if it has not already
collected information for that workstation during that day.
SOFTWARE METERING SERVICE
══════════════════════════════════════════════════════════════════════════════
DOSmenu includes a powerful capability called software metering which
enables you to control the number of simultaneous run instances of an
application. For instance, if you have bought 25 licenses for WordPerfect,
you now have the means to insure that only 25 copies are run at one time from
within the menu system on your network.
There are more expensive and perhaps more foolproof offerings on the market
for this service, but DOSmenu does the job simply and inexpensively. We
believe that an administrator's effort level in attempting to control software
licensing is at least 95 percent of any distributor's concerns.
To set up metering:
1. Place these commands in the DOSMENU.INI file:
Use Metering=yes
Meter File=f:\share\dosmenu.mtr (or something like that)
Users must have WRITE and ERASE rights to the above area.
2. Place the meter right on those commands you want metered, for example:
;─────
W WordPerfect
{m=wp51:25}
f:\apps\wp\wp
;─────
will meter the use of F:\APPS\WP\WP.EXE for all accesses from DOSmenu. Here,
if 25 instances are already in use, DOSmenu will instruct the user that the
maximum licenses are in use and to try again later.
Syntax is important. The keyword, here WP51, may be 10 or less characters
with no spaces, followed by an colon ':', followed by a number from 1 to 999
(with no spaces) -or- if no :number is entered, 999 is assumed.
Of course anyone accessing WP.EXE from outside the menu system will not be
metered in this way. See the DMMETER METERING UTILITY section to find out how
to handle this problem.
Note: RECOMMEND DELETING THIS FILE PERIODICALLY/NIGHTLY... If any user locks
up while in a metered application, or gets rebooted at that point, then the
meter count for that app will remain off by one (it will show one greater than
actual). We therefore recommend deleting the meter file periodically, perhaps
at night before or after your backup. See WOMETER WINDOWS METERING UTILITY
section below for an automatic way to perform this function.
DMMETER METERING UTILITY
══════════════════════════════════════════════════════════════════════════════
This utility can optionally monitor your software usage from outside of the
menu system. It does the same thing DOSmenu does when you activate the meter
right for a menu item, except it does it from within DOS batch files.
Here are the command line parameters:
DMMETER APP[:LICENSE_COUNT] {before batch command}
and
DMMETER {after batch command}
Here is an example batch file:
@echo off
[path]dmmeter wp51:25 ;add instance of wp51 app to meter file
if errorlevel 1 goto END ;if too many instances already, don't do it
f:\apps\wp\wp ;run the app
[path]dmmeter ;subtract instance of wp51 from meter file
:END
DMMETER.EXE must reside in DOSMENU.EXE's home directory, and DOSMENU.INI must
also be present there.
If an errorlevel 1 is returned, an error window pops up to tell the user
of the problem and asks them to try again later.
To reset a problem app (one that locks machines now and then?) to 0 in the
meter file (instead of deleting the entire file) run DMmeter with the reset
switch, like:
dmmeter /reset wp51
To view concurrent usage of metered applications from the DOS prompt, use:
dmmeter /view
WOMETER METERING UTILITY
══════════════════════════════════════════════════════════════════════════════
This utility can optionally monitor your software usage from within Windows.
WOMETER.EXE looks for the meter file's name in its WOMETER.INI file. If not
found, it makes this file in its home directory and then you fill in the name,
like:
[Setup]
MeterFile=f:\login\logs\dosmenu.mtr
WOmeter allows real-time resetting of specific metered applications, in case
the count has gone astray (perhaps from user lockups, etc.).
WOmeter can automatically erase your meter file on a daily basis at a
specified time. The default is 00:01 (one minute after midnight).
You may also define the length of time WOmeter waits between re-reads of the
meter file (10-60 seconds).
DMQUERY BATCH INPUT UTILITY
══════════════════════════════════════════════════════════════════════════════
DMquery is a utility that can be used to provide input for batch files made
with DOSmenu.
Here are the command line parameters:
DMQUERY n [/R|U|E|Danswer]
where
n = A number from 1..9
/R = Input required (answer required)
/U = Input forced to upper case
/E = Input echoed to screen
/Danswer = Input default answer is 'answer' (no spaces allowed)
The DOS variable '_DMQn' is used. DMquery may be run from DOS or a DOS shell;
however, it must be queried for and acted upon within the _same_ batch file.
Here is an example DOSmenu menu item:
;─────
D Directory
echo Directory of what?
dmquery 1
echo Switches (/w, /p, etc)?
dmquery 2
dir %_DMQ1% %_DMQ2%
pause
;─────
NOTE: You must NOT use the {r=nobreak} right with DMquery or it will not have
enough environment space to perform properly.
DMLOGIN LOGIN UTILITY
══════════════════════════════════════════════════════════════════════════════
DMlogin is a fantastic utility for helping to bring true order and security to
your network during the login and logout process.
This program is NOT required by DOSmenu and DOSmenu is NOT required of
DMlogin. They are, in fact, separate entities, but they work great together!
DMlogin acts as a buffer between your user and the actual network login and
logout commands. Here is how you set it up. The batch files below contain
the basic minimum requirements. You may doctor them up as you need -- we
certainly have on our network.
First
═════
You run DMLOGIN.EXE by itself so that it can create its INI file. This file
defines the following:
o Are you using Pathworks as your network operating system? If so, place
a 'yes' as the answer to this INI question. DMlogin then will add code
to be sure LOGON.EXE accepts the password passed to it by DMlogin. If
not using Pathworks, be sure to answer 'no', or delete the INI line.
o The DOS variable to be used by DMlogin to pass the login and logout
commands/batch files to DOS.
o The name of the command/batch file to be passed by DMlogin when logging
in to the network. If you enter the full path and extension (like
F:\LOGIN\_LOGIN.BAT), then DMlogin will alert you if it is missing and
will not let the user go.
o The name of a second command/batch file to be passed by DMlogin when
logging in to the network when a user places a '*' in front of their
name. This is optional and can be used to provide an alternate login for
support/power users, etc. The same path option entry as above applies.
o The name of a third command/batch file to be passed by DMlogin when
logging in to the network when a user places a '+' in front of their
name. This is optional and can be used to provide an alternate login for
support/power users, etc. The same path option entry as above applies.
o The name of the command/batch file to be passed by DMlogin when force
logging out of the network. The same path option entry as above applies.
o The background screen color (check SYSTEM SETUP section for how to set
this).
o The top and bottom information lines color (check SYSTEM SETUP section
for how to set this.)
o Whether to use the CRT border or not.
o The title of the user's login screen.
o The help number for your network support area.
o Whether to use the fancy screen saver (yes) or the normal one (no). The
fancy one is a graphic of a computer terminal while the normal one is a
business-like statement.
Second
══════
Make your batch files. For these examples, the INI file answers look like
this:
_DMLOGIN - the DOS variable
_LOGIN - the batch file DMlogin calls to login
- the alternate login batch file is not specified
_LOGOUT - the batch file DMlogin calls to logout
LOGIN.BAT
─────────
This is the main batch file your users will type (or get from their
AUTOEXEC.BAT) to log in. On NetWare, you should rename LOGIN.EXE to, say,
IN.EXE (as shown in the examples).
@echo off
dmlogin %1 ;%1 in case someone types 'login name'
call %_dmlogin% ;if DMlogin received good info from user, then run _login
;call is in case there is more to your batch file
_LOGIN.BAT
──────────
This is the batch file called by DMlogin to effect a login
@echo off
in %1 %2 ;in is really the old network LOGIN.EXE program
if exist f:\public\*.* goto END ;did we get logged in?
dmlogin /error ;must not have gotten logged in, so show error screen
login %1 ;run main batch file again
:END
_LOGOUT.BAT
───────────
This is the batch file called by DMlogin to effect a logout
out ;out is really the old network LOGOUT.EXE program
login ;run main batch file again
As previously stated, you can add to these batch files as needed. We are just
showing you the basic bare necessities that DMlogin needs in order to work
properly.
Third
═════
Place the command that starts the process for your users in their
AUTOEXEC.BAT, like login for LOGIN.BAT (if this is the case, you probably will
have to rename the network login command to something else. We rename
LOGIN.EXE to IN.EXE and LOGOUT.EXE to OUT.EXE on our network.
Optionally, consider using DMPAUSE.EXE instead of PAUSE in your network user
batch files. It helps prevent batch file breakout.
That's all there is to it! You may need to read the COMMONLY ASKED QUESTIONS
section for some specifics on batch file placements on NetWare networks if you
get strange error messages at times during the logout process.
Important Note
══════════════
These programs and files should be placed in your users' login directory on
the network (\LOGIN for NetWare). They work great there, but probably won't
anywhere else due to other directories "going away" on logout.
Password Protected Exit Option
══════════════════════════════
If you need to be able to abort from this program from time to time as an
administrator, then DMlogin can contain a secret password for that purpose.
Then, when ever you press Escape, you will be prompted for this password. If
correct, an errorlevel of 255 will be passed to DOS, when can be used like
this:
.
.
dmlogin
if errorlevel 255 goto ABORT
call %dmlogin%
:ABORT
.
.
To make this password, edit a file new called DMLOGIN.DAT that is in the same
directory as DMLOGIN.EXE. Enter a one-line password of 43 characters or less
and then press Enter at the end of the line (Should be a one-line file). Then
enter the following command:
DMUTIL /C DMLOGIN.DAT
DMutil will encrypt the file for you. Now you can secretly abort DMlogin.
WINDOWS OFFICE MENU
══════════════════════════════════════════════════════════════════════════════
We now have another product, WOmenu, that is a network menuing system as well.
However, WOmenu is Windows-based. It's functionality is similar to DOSmenu
(shared log and meter files, etc.). If you are interested in this product,
please contact us. To try it first, look on Compuserve in the NOVUSER/New
Uploads [1] forum/library for the file WOMNU.EXE.
BONUS UTILITIES (FOR REGISTERED USERS)
══════════════════════════════════════════════════════════════════════════════
The following functions are also included with registration:
FULL MOUSE SUPPORT
The following programs are included with registration (listed alphabetically):
DMASCII.EXE - An ascii chart showing the decimal, hexidecimal and character
codes of all 256 ascii characters.
DMBEEP.EXE - Beeps the workstation in one of three different ways.
DMCAL.EXE - A quick calendar utility that helps your users find dates, etc.
DMCALC.EXE - A 5-function programmer's calculator that also performs
floating point (currency) calulations.
DMCBOOT.EXE - Cold boots the workstation.
DMCHKDIR.EXE - Check to see if a directory exists, even if empty, and even on
NetWare!
DMDIRF.EXE - Show users files only, without the DOS directory header stuff.
DMDIRS.EXE - Show users the sub-directories only, no files or DOS header
stuff.
DMGET.EXE - Another DOS-level batch get utility. With this utility, you
can get answers through a popup window.
DMLIST.EXE - A full-fledged file viewing utility for you and your users.
This is an enhanced version of DMview that includes more
technical options, such as hex mode viewing.
DMLOG.EXE - A computer logging utility. We use this utility to log nearly
everything that happens on our network.
DMMSG.EXE - Leave a message on screen and wait for a keypress.
DMNPT.EXE - A utility that simplifies and solves at least one bug with
NetWare's nprint program. This point and shoot utility
nprint's to the queue _you_ want, not necessarily your default
queue.
DMPOST.EXE - A screen poster utility. Great for network notification. When
DOSmenu's internal notice function is not enough, we use this
in standard batch files to warn or update users.
DMRUN.EXE - An instant menu pick and run program. This utility has many
unique uses.
DMSECURE.EXE - A computer security program. When DOSmenu is not enough or is
not running, this utility can easily fill the gap to help
ensure a secure networking environment.
DMSELECT - A great instant menu utility especially suited for users on a
network. Many, many uses are possible with this easy utility.
DMSTATS.EXE - Show available memory (all types) and available drive space
(all drives except A and B) for the workstation.
DMUPDWS.EXE - A powerful utility, like NetWare's WSUPDATE.EXE program, but
better!
DMWBOOT.EXE - Warm boots the workstation.
DMYN.EXE - Gets a Yes/No answer from a question in a batch file and acts
upon it.
USING DOSMENU WITH NOVELL NETWARE 4.X
══════════════════════════════════════════════════════════════════════════════
DOSmenu works very well with Novell's NetWare 4.x series network operating
system. You have two choices when using 4.x NetWare depending upon whether
you are using bindery emulation or not.
USING BINDERY EMULATION
═══════════════════════
If you are using bindery emulation, then everything works exactly as
advertised just like you were using an earlier version of NetWare. You have
no changes to make to the normal DOSmenu setup.
NOT USING BINDERY EMULATION
═══════════════════════════
If bindery emulation is turned off, then you have a couple of adjustments to
make in order to fully use DOSmenu's rich features.
Faking groups at the menu level
───────────────────────────────
Because there is no bindery per se, DOSmenu cannot by itself determine if a
user is a member of a group. This is fairly easily rectified however by
using the Directory right instead. When placing users in groups, take one
extra step and assign them READ and FILE SCAN trustee rights to a "fake"
directory on the server. We suggest you make one directory off the root
called FLAGS. Under that directory, make additional directories as needed to
help DOSmenu determine whether a user is a member of a group.
For instance, let's say you wish to make JOE a member of the ACCTNG group so
you can later place this item in your DOSmenu menu:
;─────
A Accounting Package
{g=acctng}
accounter
;─────
This item normally shows the 'A Accounting Package' to Joe because he is a
member of Accntng. Although this works great when a bindery is available, it
does not work without one. Therefore, if you give Joe trustee rights to a
directory called F:\FLAGS\ACCTNG, then Joe will be able to 'see' that
directory when he is logged in to the server. And therefore the following
item will acomplish the same purpose using the directory rights:
;─────
A Accounting Package
{d=f:\flags\acctng}
accounter
;─────
Only those users who can 'see' this acctng directory will see this item on
their menu. So the norm would be to assign trustee rights to a 'flagged'
directory for each group you make.
Faking a "normal" user name
───────────────────────────
If the User name at the top right of the DOSmenu menu screen shows more than
just the simple user name, like JOE, then NetWare is returning a user 'path'
that may include where the user is from on the network. While this can be
very useful information, it destroys DOSmenu's ability to react on a user
name within the menu. Again, there is a simple way around this. During
login, within the login script, simply define a DOS variable to hold the
actual user name and then use that variable for DOSmenu operations, just like
you do for the workstation node address variable. For example, when Joe logs
in, the network login script could define the DOS variable, USER, to hold his
actual user name, like:
DOS SET USER=%LOGIN_NAME
You must define for DOSmenu, within its DOSMENU.INI file under the [Network]
section, what variable will hold the user name for menu users, like:
[Network]
Non-Network DOS User Var=USER
Now, DOSmenu will look to this variable for the user's actual login name
instead of the expanded login name offered by NetWare 4.x itself.
After making these two adjustments, DOSmenu will work perfectly with NetWare
4.x, just like it does with previous versions.
COMMONLY ASKED QUESTIONS
══════════════════════════════════════════════════════════════════════════════
? I GET CRYPTIC MESSAGES AFTER LOGGING OUT OF A NETWARE NETWORK. WHAT CAN
I DO TO PREVENT THIS?
Ans: When you use a batch file to run the NetWare logout command, some of your
mappings will be lost before the batch file is completed, leading to
strange DOS errors. For instance, if you used the OUT.BAT to log out and
the contents of OUT.BAT were:
OUT.BAT
───────
@echo off
cls
logout
f:
then you might receive one of these:
Cannot execute X:\OUT.BAT
or
Invalid drive specification - X:\OUT.BAT
or
perhaps your DOS prompt goes completely away.
It is easy to prevent this from occurring. What is probably happening is
that you are not in the F:\LOGIN directory when the OUT comand is issued
or either DOS 'sees' you on another drive, like X:, due to your network
search mappings for the F:\LOGIN directory. In any event, you simply
need to make a dummy batch file in a directory that is higher up (before)
than the LOGIN mapping, usually F:\PUBLIC. In this example, make a dummy
OUT.BAT in F:\PUBLIC that contains:
OUT.BAT
───────
@echo off
f:
cd\login
out
This will redirect DOS and make sure that it actually is 'in' F:\LOGIN
before it runs the OUT.BAT in F:\LOGIN, and then DOS will not be lost
after the logout command is issued from that batch file.
If your F:\LOGIN search mapping is already the 'first' mapping on your
mapping list, then make the OUT.BAT in F:\LOGIN redirect to another batch
file in F:\LOGIN, so DOS will actually 'be there' and run that batch file
for the logout instead. For example, make OUT.BAT look like this:
OUT.BAT
───────
@echo off
f:
cd\login
realout
where REALOUT.BAT is a batch file in F:\LOGIN that contains:
REALOUT.BAT
───────────
@echo off
cls
logout
f:
Although the above sounds complicated, it really isn't. All you are
trying to do is to insure that DOS is 'in' F:\LOGIN and running a batch
file that is 'in' F:\LOGIN before the actual logout command is issued, so
that it doesn't get 'lost' afterwards. Above all, place your DOSmenu
files in your \LOGIN directory (they can be hidden).
══════════════════════════════════════════════════════════════════════════════
? ON A NETWORK, WHEN LOGGING OUT THROUGH DOSMENU, SOMETIMES USING THE
LOGOUT COMMAND (FOR LOGOUT.EXE) LEAVES ERROR MESSAGES ON THE USER'S DOS
SCREEN OR TAKES AWAY THE USER'S DOS CURSOR AND PROMPT. WHY IS THIS AND
WHAT CAN I DO?
Ans: Simple. As an addon to the above discussion, just make sure that
something like the following two lines are near the top of your MENU.BAT file:
MENU.BAT (near top)
────────
f:
cd\login
This will insure that DOS is 'in' the login directory after running the
logout command, and therefore MENU.BAT will still be found so that it can
be completed by DOS.
Alternatively, you could place a dummy MENU.BAT in a higher mapped
directory, like PUBLIC, that reads:
MENU.BAT
────────
@echo off
f:
cd\login
menu %1 %2 %3 %4 %5
This would accomplish the same thing.
In any case, the other DOSmenu files do not need to be in the LOGIN
directory. But if you choose to place them there, that's OK. You may
even make them hidden with the hidden DOS/network attribute if you wish.
Just do not make them readonly at the file level. Setting the LOGIN
directory to READ and FILE SCAN only is adequate and will work well.
══════════════════════════════════════════════════════════════════════════════
? AFTER PASSING THE LOGOUT COMMAND, I STILL GET A MENU AFTER THE LOGOUT IS
COMPLETED. HOW DO I STOP THIS?
Ans: Add a line at the beginning of your MENU.BAT to check to see if the user
is still logged in or not, like:
if not exist f:\public\*.* goto END
This way, the MENU.BAT will quit after logout.
══════════════════════════════════════════════════════════════════════════════
? WHEN WE TRY TO USE THE GOTO END COMMAND TO GIVE USERS A MENU QUIT OPTION,
IT DOESN'T WORK. WHY AND HOW DO WE DO IT?
Ans: To use this function, it must be the only command for that menu item.
For example:
Q Quit
cls
goto END
will not work because if there is more than one command, DOSmenu makes
the commands into a temporary batch file. In that case the 'goto END'
command would only go to the end of the temporary batch file! The
following will work:
Q Quit
goto end
══════════════════════════════════════════════════════════════════════════════
? WHY WOULD I WANT TO TURN OFF MOUSE SUPPORT IN DOSMENU.INI?
Ans: Under some configurations, your DOS mouse driver (MOUSE.COM, etc.) may
take some delay in initializing, therebey introducing an unwanted delay
factor between menu selections. This delay would occur because DOSmenu
unloads itself between menu commands to give you all of the DOS memory to
run programs. When it unloads itself, the mouse driver is automatically
un-initialized by DOS as well.
══════════════════════════════════════════════════════════════════════════════
? WHY DO I SOMETIMES GET A PARAMETER ERROR WHEN I RUNNING MENU.BAT ON A
NETWARE NETWORK?
Ans: NetWare's MENU.EXE program is probably in your search path (normally in
\PUBLIC). You should either delete or rename this file.
══════════════════════════════════════════════════════════════════════════════
? HOW DO I USE THE DOSMENU GROUP RIGHT ON NETWARE 4.X WITHOUT EMULATION?
Ans: You can't. But you can use the DOSmenu Directory right instead. Simply
give group members trustee rights to a 'flag' directory and then test for
that directory in the menu instead of testing for the group. As an
example, if a user is a member of WP group, and you give that group
trustee rights to a directory, say F:\FLAGS\WP, then the user will be
able to run the menu item if you check the right {d=f:\flags\wp}, while
other users, who are not a member of WP and therefore do not have rights
to F:\FLAGS\WP, will not have the item on their menu.
══════════════════════════════════════════════════════════════════════════════
? HOW DO I USE THE %VAR% AS A MENU COMMAND WHEN THE %VAR% MUST BE AT THE
BEGINNING OF THE COMMAND? DOESN'T THAT SIGNIFY A SUB-MENU CALL?
Ans: Yes it does. But there is a safe way around that syntax. Simply place
a 'call' statement before the command. DOSmenu eventually does this
anyway and one more at the beginning of the line makes no difference to
DOS. For example, if you need the command:
%var%:\apps\paradox
where %var% signifies the drive letter, then enter the command like this:
call %var%:\apps\paradox.
This will work nicely.
EXAMPLE MENU FILE
══════════════════════════════════════════════════════════════════════════════
The below network menu file example is listed with a generous helping of legal
and illegal comments. Note that comments must commence only at the start of a
line and NOT at the middle to end of a line even though we use it here to
better comment the code for you. Note that this menu was made with the plan
to use the option 'Use One Key Selection' equal to no (the default).
;The menu name for this overall main menu below.
%Our Network Menu, 10, 5 ;Numbers optional: 10 = x, 5 = y on screen
; placement of upper left corner of menu window
;This server section means any server and/or a stand-alone environment.
;These commands will be at the top of every user's menu.
;Note the required blank line before the :SERVER_NAME line
:ALL
M Mail
;All members of EMAIL_USERS will get the Mail menu item.
{g=email_users}
;The help line for this item (shown at the bottom of the screen)
#Send and receive mail to and from other users
;If selected, the command/permanent batch file EMAIL will be run.
email
;This section is for CENTRAL server users only.
:CENTRAL
P Paradox
{g=support,paradox} {p=restrict}
#Database program
f: ;A multi-command item that
cd\apps\paradox ; generates a temp batch file.
paradox ;
W WordPerfect
{g=wp_central} {m=wp51:25} ;Metered for 25 instances.
#Word processor
f:\apps\wp51\wp
;The next item ask a yes/no question first.
C Check printing
{u=check_printer} {q=Are you sure you want to print checks?}
#Print all due checks to the upstairs printer
checkprt
I INSAPP
{g=insapp_users,support;u=adm} {s=server1}
#Our main database
ins
S Support Menu ;Another complete menu file which is called
/load support ; with this line.
A Accounting Menu ;Another complete menu file which is called
/menu acctng ; with this line and becomes the default menu.
N Support Batch ;Chain to a new startup batch file; here
/new g:\login\support ; G:\LOGIN\SUPPORT.BAT.
;This section is for BRANCH_ONE server users only.
:BRANCH_ONE
A Central connection
{g=awlan}
#Connect with the home office by modem
connect
W WordPerfect
{g=wp_branch}
#Word processor
?f:\public\wordproc.txt ;user can press '?' to view this 'about' file
wp
;This server section means any server and/or a stand-alone environment.
;These commands will be at the bottom of every user's menu.
:ALL
U Utility Menu
#Various utilities
%Utility Menu
B Backup Server Menu
#Backup options
%Backup Server Menu
L Logout of network
{q=Are you sure?}
#Log out of the network
logout ;You could also enter 'goto end' to simply quit
; the menu system, if desired.
;Remember to place a blank line before all %SUB-MENU NAME lines
%Utility Menu, 5, 10 ;Display at xy coords 5 and 10 on screen.
P Change your network printer
capture [] ;This command asks a question first.
D Directory of...
#Obtain a directory listing
dir [] /p ;This command asks a question first.
D Directory of (another way)...
echo Directory of what?
dmquery 1 ;DMquery external batch utility.
echo Switches (/w /p, etc)?
dmquery 2
dir %_dmq1% %_dmq2%
pause
%Backup Server Menu
D Daily backup procedure
bud
W Weekly backup procedure
buw
SHAREWARE
══════════════════════════════════════════════════════════════════════════════
Evaluation Copy
───────────────
THIS IS NOT FREE SOFTWARE! You may evaluate and use this product, but if you
decide to make use of it on a regular basis, you must register your copy.
NOTE: BUSINESSES, GOVERNMENT AGENCIES AND INSTITUTIONS ARE REQUIRED TO
REGISTER THIS SOFTWARE PACKAGE BEFORE EXTENDED USE.
We offer several inducements to you for registering. First of all, you will
receive the most up-to-date copy of the program -- and we update the program
on a regular basis. Second, full mouse support is available in the
registered version. Third, we have additional mini-utilities that work
nicely with DOSmenu not included in this package that we will ship to you
upon registration. Fourth, you will receive a printer manual. Fifth, you
will never see the shareware message again. Make no mistake, however -- this
is a fully functional version of DOSmenu that is not "crippled" in any way.
Distribution
────────────
This is "user-supported" software. You are hereby granted permission to
distribute this evaluation copy of DOSmenu and its documentation, subject to
the following conditions:
1. Shareware DOSmenu may be distributed freely without charge in evaluation
form only. The original PKZIP self-extracting file, DOSMNU.EXE, is the
preferred method.
2. DOSmenu in its shareware form may not be sold, licensed, or a fee charged
for its use. If a fee is charged in connection with DOSmenu, it must
cover the cost of copying or dissemination only. Such charges must be
clearly identified as such by the originating party. Under no
circumstances may the purchaser be given the impression that he is buying
a registered version of DOSmenu.
3. Shareware DOSmenu must be presented as a complete unit with documentation.
Neither DOSmenu nor its documentation may be amended or altered in any way
without permission of the copyright holder.
4. By granting you the right to distribute the evaluation form of DOSmenu,
you do not become the owner of DOSmenu in any form.
Any other use, distribution or representation of DOSmenu is expressly
forbidden without written consent from the copyright holder.
Registration
────────────
The non-commercial single-user registration fee for DOSmenu is $45.00 US.
($10 shipping and handling is included.)
The commercial/government and multi-system site fee for DOSmenu is:
Non-network environment:
Per machine - $40.00 US.
Network environment:
Per server - $260.00 US.
($10 shipping and handling is included.)
Send a check drawn on a US bank, a postal money order, a cashiers check, or a
company/institution purchase order for the appropriate amount to:
Bremer Corporation
3401 Cactus Wren Way
Austin, Texas 78746
Telephone: 512-328-2465
CompuServe ID: 71614,2556
Internet ID: zboray@io.com
See DMORDER.DOC for a ready-made ordering form.
We also accept Mastercard, Visa, American Express Card and Corporate American
Express Card telephone orders. Send card number, expiration date and sign
the order form for card orders.
Disclaimer
──────────
Bremer Corporation does not warrant that the functions contained in this
program will meet your requirements or that the program operation will be
uninterrupted or error free.
Bremer Corporation specifically disclaims all other warranties, expressed or
implied, including but not limited to implied warranties of fitness for any
particular purpose and of merchantability.
In no event will Bremer Corporation be liable to you for any damages,
including but not limited to any lost profits, lost savings, commercial
damage or other incidental or consequential damages arising out of the use or
inability to use this program, or for any claim by any other party.
Trademarks
──────────
Trademarks of companies or products mentioned in DOSmenu documentation files
are the property of their respective companies.
ADDITIONAL DOSMENU DOCUMENTATION FILES
══════════════════════════════════════════════════════════════════════════════
The following files are located on disk:
DMREADME.DOC - DOSmenu installation instructions.
DMREV.DOC - DOSmenu revision history.
DMORDER.DOC - DOSmenu order form.
DOSMENU.DOC - DOSmenu documentation (this manual).
DMNOBRK.DOC - NoBrk prelude documentaton for included NoBrk product.